Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 546a5e8e165205d4c584295e04d2170ed1f48e0b


Parents : d4c6089
Author : Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-04-23T17:40:18-05:00

feat(electron): add F12 shortcut for toggling DevTools and enable auto-hide menu bar in main windows

Changes

2 files changed, 23 insertions(+), 0 deletions(-)


Diff

diff --git a/electron/main-legacy.js b/electron/main-legacy.js
index 7b145161..3e57f995 100644
--- a/electron/main-legacy.js
+++ b/electron/main-legacy.js
@@ -311,6 +311,7 @@ app.whenReady().then(async () => {
mainWindow = new BrowserWindow({
width: 1500,
height: 800,
+ autoHideMenuBar: true,
webPreferences: {
// used to inject logging over ipc
preload: path.join(__dirname, "preload.js"),
@@ -325,6 +326,13 @@ app.whenReady().then(async () => {
},
});
+ mainWindow.webContents.on("before-input-event", (event, input) => {
+ if (input.type === "keyDown" && input.key === "F12" && !mainWindow.isDestroyed()) {
+ mainWindow.webContents.toggleDevTools();
+ event.preventDefault();
+ }
+ });
+
// open external links in default web browser instead of electron
mainWindow.webContents.setWindowOpenHandler(({ url }) => {
var shouldShowInNewElectronWindow = false;

diff --git a/electron/main.js b/electron/main.js
index ed265ebd..95b0a7d9 100644
--- a/electron/main.js
+++ b/electron/main.js
@@ -319,6 +319,19 @@ ipcMain.handle("pick-directory", async () => {
return filePaths[0];
});
+function attachDevToolsF12Shortcut(browserWindow) {
+ browserWindow.webContents.on("before-input-event", (event, input) => {
+ if (input.type !== "keyDown" || input.key !== "F12") {
+ return;
+ }
+ if (browserWindow.isDestroyed()) {
+ return;
+ }
+ browserWindow.webContents.toggleDevTools();
+ event.preventDefault();
+ });
+}
+
function attachDefaultContextMenu(browserWindow) {
const webContents = browserWindow.webContents;
webContents.on("context-menu", (event, params) => {
@@ -483,6 +496,7 @@ function createTray() {
app.whenReady().then(async () => {
app.on("browser-window-created", (event, browserWindow) => {
attachDefaultContextMenu(browserWindow);
+ attachDevToolsF12Shortcut(browserWindow);
});
// Security: Enforce CSP for all requests as a shell-level fallback
@@ -530,6 +544,7 @@ app.whenReady().then(async () => {
width: 1500,
height: 800,
icon: appIconPath,
+ autoHideMenuBar: true,
webPreferences: {
// used to inject logging over ipc
preload: path.join(__dirname, "preload.js"),


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────